Análise do preço do título NTNB-principal até 19-12-2022
Carregando pacotes
library(readr)
library(dplyr)
library(OpenImageR)
library(ggplot2)
library(plotly)
Carregando dados
fonte: https://cdn.tesouro.gov.br/sistemas-internos/apex/producao/sistemas/sistd/2022/NTN-B_Principal_2022.xls
ntnb_principal <- readxl::read_excel(
col_names = TRUE, skip = 1,
"D:/ANALISE_MACRO/Repo/Insight_basic_V1/NTN-B_Principal_2022.xls",
sheet = "NTN-B Princ 150545",
col_types = c("guess", "numeric", "numeric", "numeric", "numeric", "numeric"))
ntnb_principal
ntnb_principal[,1] <- as.data.frame(as.Date(ntnb_principal$Dia, "%d/%m/%Y"))
#ntnb_principal
#class(ntnb_principal)
#summary(ntnb_principal)
#typeof(ntnb_principal)
Tratamento dos dados
# Tratamento o nome das variaveis
ntnb_principal <- janitor::clean_names(ntnb_principal)
qtd_adq <- qtd_tt * v_apl
# nova variavel - variação do valor conforme preço de venda
var_vlortt <- qtd_adq * ntnb_principal$pu_venda_manha
ntnb_principal[,"preco_venda_variação_preço"] <- var_vlortt
# nova variavel - variação do valor conforme preço de compra
var_valortt_c <- qtd_adq * ntnb_principal$pu_compra_manha
ntnb_principal[,"preco_compra_variação_preço"] <- var_valortt_c
# Conversão da taxa de anual para diária
tx_dd <- ((1+ntnb_principal$taxa_venda_manha)^(1/360))-1
# nova variavel - variação do valor conforme a taxa de venda
vfr_ivar <- ((1+tx_dd)^(0:240)) * v_apl
# convertendo para DF e renomeando a variavel
vfr_ivar <- as.data.frame(vfr_ivar)
ntnb_principal[,"var_valor_conforme_taxa_titulo"] <- vfr_ivar
# convertendo Taxa anual p/ diária - taxa fixa
vfr_ifx <- as.data.frame(rep(0, 214))
vfr_ifx[, "valores"] <- as.data.frame(rep(0, 214))
df_prov <- as.data.frame((1+iD)^(0:27) * v_apl)
vfr_ifx <- bind_rows(vfr_ifx, df_prov)
vfr_ifx <- vfr_ifx[, -1]
vfr_ifx[, "valor_teorico_taxa_contratada"] <- as.data.frame(vfr_ifx$`(1 + iD)^(0:27) * v_apl`)
vfr_ifx <- vfr_ifx[, -1]
# convertendo para DF e renomeando a variavel
ntnb_principal[,"valor_teorico_taxa_contratada"] <- vfr_ifx$valor_teorico_taxa_contratada
ntnb_principal
Plotando o gráfico
colnames(ntnb_principal)
## [1] "dia" "taxa_compra_manha"
## [3] "taxa_venda_manha" "pu_compra_manha"
## [5] "pu_venda_manha" "pu_base_manha"
## [7] "preco_venda_variação_preço" "preco_compra_variação_preço"
## [9] "var_valor_conforme_taxa_titulo" "valor_teorico_taxa_contratada"
# Criando o Plot
p1 <- ggplot(ntnb_principal, aes(x = dia, y = preco_venda_variação_preço,
col = "Valor à Taxa Contratada"))+
geom_line(aes(y = preco_venda_variação_preço, col = "Preço à marcação de
\nmercado conforme preço
\nde venda diário\n"))+
geom_line(aes(y = preco_compra_variação_preço, col = "Preço à marcação de
\nmercado conforme preço
\nde compra diário\n"))+
geom_line(aes(y = var_valor_conforme_taxa_titulo, col = "Preço à Taxa Real Diária\n"))+
geom_line(aes(y = valor_teorico_taxa_contratada, col = "Valor Futuro da Apl no tempo\n"))+
labs(title = "Comparação entre os Preços do IPCA+2045 (5,49%) no perído de 2022",
subtitle = "Preço à Taxa Real x Preço à Taxa Teórica x Preço do Título à PU de Venda \n(VP = R$ 205,00" ,
x = "Período", y = "Valor em R$", color = "Preço teórico vs Preço Real")+
ylab("Valor")+
xlab("Periodo")+
scale_y_continuous(n.breaks = 10, expand = expansion(add = .6))+
scale_x_date(date_breaks = "1 month", date_labels = "%b", expand = expansion(mult = .05))+
coord_cartesian(ylim = c(180, 235))+
theme_bw()
# Plotando o gráfico interativo
ggplotly(p1)